home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / demos / icse / icsu.sci < prev    next >
Text File  |  1999-09-16  |  1KB  |  38 lines

  1. //[co,u,g,itv,dtv]=icsu(u,simu,nap,imp)
  2. //Calcul du controle optimal avec ponderation du controle initial
  3. //Une mise a l'echelle ramene toutes les composantes du controle
  4. //initial a 1.Les composantes initialement nulles le resteront.
  5. //Ne convient que si la borne inferieure est positive.
  6. //%Syntaxe
  7. //[co,u,g,itv,dtv]=icsu(u,simu,nap,imp)
  8. //variables d'entree :
  9. //u(nu)     : parametres initiaux
  10. //simu      : chaine de caracteres donnant le nom du sous programme
  11. //            decrivant le probleme (second menbre, critere et etat
  12. //            initial)
  13. //nap       : nombre maximum d' appels du simulateur
  14. //imp       : valeur de debug pendant l'optimisation
  15. //variables de sortie  :
  16. //co        : cout final
  17. //u(nu)     : parametres finaux
  18. //g(nu)     : gradient final
  19. //itv(nitv) : tableau de travail (entiers fortran)
  20. //dtv(ndtv) : tableau de travail (double precision fortran)
  21. //Utiliser les macros icot et icob pour extraire l'etat total
  22. //ou l'etat aux instants de mesure de dtv.
  23. //!
  24. df0=1;
  25. if mini(binf) <=0, ..
  26.   error('appel de icsu avec binf non strictement positif'); end;
  27. for i=1:nu,u(1,i)=maxi( [binf(1,i),mini([u(1,i),bsup(1,i)])] ), end;
  28. ech=u;
  29. binf=binf./u;
  30. bsup=bsup./u;
  31. u=ones(1,nu);
  32. cof=ones(1,ntob*nob);
  33. [co,u,g,itv,dtv]=icsegen(u,simu,nap,imp)
  34. u=ech.*u;
  35. //end
  36.  
  37.  
  38.